1. Field of the Invention
The present invention relates to a method, system, and article of manufacture for determining whether data written to source storage locations according to a write order is copied to corresponding target storage locations in the write order.
2. Description of the Related Art
Disaster recovery systems typically address two types of failures, a sudden catastrophic failure at a single point in time or data loss over a period of time. In the second type of gradual disaster, updates to volumes may be lost. To assist in recovery of data updates, a copy of data may be provided at a remote location. Such dual or shadow copies are typically made as the application system is writing new data to a source storage device.
In data mirroring systems, data is maintained in volume pairs. A volume pair is comprised of a volume in source primary storage device and a corresponding volume in a target storage device that includes an identical copy of the data maintained in the source volume. Source and target storage controllers may be used to control access to the primary and secondary storage devices. The integrity of data updates is related to insuring that updates are done at the target volumes in the volume pair in the same order as they were done on the source volume.
In many application programs, such as database systems, certain writes cannot occur unless a previous write occurred; otherwise the data integrity would be jeopardized. Such a data write whose integrity is dependent on the occurrence of previous data writes is known as a dependent write. Volumes in the source and target storages are consistent when all writes have been transferred in their logical order, i.e., all dependent writes transferred first before the writes dependent thereon. For such application programs, the data must be transferred in the order in which the data was written to ensure data integrity.
Data mirroring systems may write the data written to the primary or source storage synchronously or asynchronously. For synchronous mirroring, a complete is not returned to a host initiating the write request until the data is copied to both the source storage and the target mirror storage. For asynchronous mirroring, complete is returned to the host before the data is written to both the source and target storage locations.
There is a need in the art to be able to determine whether mirroring software is copying data to the target storage location in the order in which the data is written to the source storage locations so that data consistency is maintained.